<?php
class DbUtil {
	static public function listIdDesc(
	$classe,
	$campo_chave,
	$campo_descritivo,
	$filtro = null,
	$ordenacao = null
	) {
		if(!$ordenacao) {
			$ordenacao = $campo_descritivo;
		}
		$sqlFiltro = '';
		if(!$filtro) {
			$filtro = array();
		}
		# o ideal aqui seria usar o hydrate para converter os valores do where
		foreach($filtro as $nome=>$valor) {
			$sqlFiltro = $sqlFiltro ? ' AND ' : ' ';
			$sqlFiltro .= $nome."=".$valor;
		}
		$query = new Doctrine_Query();
		$query = $query->select("x.$campo_chave as chave, x.$campo_descritivo as descricao")
		->from("$classe x")
		->orderby("x.$ordenacao");
		if($sqlFiltro) {
			$query->where($sqlFiltro);
		}
		$ar = $query->execute(array(),Doctrine::HYDRATE_ARRAY);
		$ar_ret = array();
		foreach($ar as $i) {
			$ar_ret[$i['chave']] = $i['descricao'];
		}
		return $ar_ret;
	}

}